package cn.itsource.org.domain;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Department implements Serializable {

    private Long    id ;   //主键
    private  String       sn;  //部门编号
    private String name; //部门名称
    private    String     dirPath;  //层级路径
    private Integer state; //启用状态
    private   Long      manager_id;  //管理者id 关联员工表主键
    private Long parent_id; //父级部门的id  自关联
    private    Long     shop_id; //店铺id   关联店铺表的id

    /* 一个部门有一个部门经理 */
    private Employee manager;   //查询表得到的username装入这个对象

    /* 一个部门有一个直接上级部门 */
    private Department parent; //查询表得到的parentName装入这个对象

    /* 封装子级部门的集合
    添加注解：  如果集合为空  没有子级部门  json中不包含这个children属性
    */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private List<Department> children = new ArrayList<>(); //子部门列表



}
